var editRowsNumber,_datasDatagrid,selectForm,parentCenterTabs;

/**用户组管理*/
function usergroupRowHandler(){
	var row = _datasDatagrid.datagrid('getSelections');
	switch (row.length) {
	case 0:
		$.messager.alert('提示', '请选择要管理用户组的用户', 'warning');
		break;
	case 1:
		sy.addTab(sy.bp()+"/admin/group/user/list?gid="+row[0].id, parentCenterTabs, row[0].name+"的用户");
		break;
	default:
		$.messager.alert('提示', '您选择了多条记录数，每次只能管理一个用户', 'warning');
		break;
	}
}

/**清空制定组内所有用户*/
function clearUserRowHandler(){
	var rows = _datasDatagrid.datagrid('getSelections');
	if (rows && rows.length > 0) {
		$.messager.confirm('请确认', '您确实要清空当前所有组内的用户吗?', function(b){
			if (b) {
				var ids = [];
				for ( var i = 0; i < rows.length; i++) {
					ids.push(rows[i].id);
				}
				$.post(sy.bp()+"/admin/group/clearUser",{groupIds:ids.join(",")}, function(data) {
					if (data && data.result==1) {
						$.messager.show({msg:data.msg,title:'系统提示'});
						editRowsNumber = -1;
						_datasDatagrid.datagrid('unselectAll');
						_datasDatagrid.datagrid('reload');
					} else {
						$.messager.alert('警告', data.msg, 'warning');
					}
				}, "json");
			}
		});
	} else {
		$.messager.alert('提示', '请选择要管理用户组的用户', 'warning');
	}
}

/**清空按钮*/
function clearUser(rowId, rowName){
	$.post(sy.bp()+"/admin/group/clearUser", {id:rowId, names:rowName}, function(data) {
		if (data && data.result == 1) {
			$.messager.show({msg:data.msg,title:'系统提示'});
			_datasDatagrid.datagrid('reload');
		} else {
			$.messager.alert('警告', data.msg, 'warning');
		}
	}, "json");
}

function addRow() {
	if (editRowsNumber != -1) {
		_datasDatagrid.datagrid('endEdit', editRowsNumber);
	} else {
		_datasDatagrid.datagrid('insertRow', {index: 0, row: {}});
		_datasDatagrid.datagrid('beginEdit', 0);
		editRowsNumber = 0;
	}
};

function deleteRow() {
	var rows = _datasDatagrid.datagrid('getSelections');
	if (rows.length > 0) {
		$.messager.confirm('请确认', '您确实要删除当前所有选择的记录吗？', function(b){
			if (b) {
				var ids = [];
				for ( var i = 0; i < rows.length; i++) {
					ids.push(rows[i].id);
				}
				$.post(sy.bp()+"/admin/group/delete", 
						{ids:ids.join(",")}, function(data) {
					if (data && data.result==1) {
						$.messager.show({msg:data.msg,title:'系统提示'});
						editRowsNumber = -1;
						_datasDatagrid.datagrid('unselectAll');
						_datasDatagrid.datagrid('reload');
					} else {
						$.messager.alert('警告', data.msg, 'warning');
					}
				}, "json");
			}
		});
	} else {
		$.messager.alert('提示', '请选择要删除的记录', 'error');
	}
};

function updateRow() {
	var rows = _datasDatagrid.datagrid('getSelections');
	//console.info(rows);
	switch (rows.length) {
	case 0:
		$.messager.alert('提示', '请选择要修改的记录', 'warning');
		break;
	case 1:
		if (editRowsNumber != -1) {
			_datasDatagrid.datagrid('endEdit', editRowsNumber);
		} else {
			var index = _datasDatagrid.datagrid('getRowIndex', rows[0]);
			_datasDatagrid.datagrid('beginEdit', index);
			editRowsNumber = index;
			_datasDatagrid.datagrid('unselectAll');
		}
		break;
	default:
		$.messager.alert('提示', '您选择了多条记录数，请每次修改一条记录', 'warning');
		break;
	}
};

function saveRow() {
	_datasDatagrid.datagrid('endEdit', editRowsNumber);
};

function rejectRow() {
	editRowsNumber = -1;
	_datasDatagrid.datagrid('rejectChanges');
	_datasDatagrid.datagrid('unselectAll');
};

function search_datas() {
	_datasDatagrid.datagrid('load',sy.serializeObject(selectForm));
}

function reset_datas() {
	selectForm.find('input[type="text"]').val('');
	_datasDatagrid.datagrid('load',{});
}

$(function() {
	editRowsNumber = -1;
	_datasDatagrid = $('#_datasDatagrid');
	selectForm = $('#selectForm');
	parentCenterTabs = parent.centerTabs;
	
	_datasDatagrid.datagrid({
		url : sy.bp()+'/admin/group/list',
		fit : true,
		autoRowHeight : false,
		striped : true,
		rownumbers : true,
		pagination : true,
		singleSelect : false,
		fitColumns : true,
		pageSize : 10,
		pageList : [10,20,30,40,50],
		nowrap : true,
		border : false,
		idField : 'id',
		sortName : 'id',
		sortOrder : 'desc',
		view: sy.myview,
        emptyMsg: '没有查询到相关数据',
		toolbar: [
					{text:'增加',iconCls: 'icon-add',handler: addRow},'-',
					{text:'批量删除',iconCls: 'icon-remove',handler: deleteRow},'-',
					{text:'编辑',iconCls: 'icon-edit',handler: updateRow},'-',
					{text:'保存',iconCls: 'icon-save',handler: saveRow},'-',
					{text:'撤销',iconCls: 'icon-redo',handler: rejectRow},'-',
					{text:'组内用户',iconCls: 'icon-group_go',handler: usergroupRowHandler},'-',
					{text:'清空组用户',iconCls: 'icon-group_delete',handler: clearUserRowHandler},'-',
					{text:'刷新',iconCls: 'icon-reload',handler: function(){_datasDatagrid.datagrid('reload');}}
				 ],
		frozenColumns: [[
		     				{field:'id',title:'编号',align:'center',width:100,sortable:true,checkbox:true},
							{field:'name',title:'组名',align:'left',width:500,sortable:true,
		     					editor:{type:'validatebox',options:{required:true,validType:['unnormal','maxLength[200]']}}
		     				}								
					   ]],
		columns:[[
					{field:'describes',title:'描述',align:'left',width:500,sortable:true,
						editor:{type:'validatebox',options:{validType:['unnormal','maxLength[200]']}}
					},
					{field:'createName',title:'创建人',align:'left',width:200,sortable:true},
					{field:'createTime',title:'创建时间',align:'left',width:200,sortable:true}
				]],
		onLoadSuccess : function(data) {/*Datagrid加载完毕事件*/
			$('.buttonClearUser').linkbutton({text:'清空',plain:true,iconCls:'icon-group_delete'});
			editRowsNumber = -1;
			$.messager.progress('close');
		},
		onDblClickRow : function(rowIndex, rowData) {/*Datagrid双击事件*/
			if (editRowsNumber != -1) {
				_datasDatagrid.datagrid('endEdit', editRowsNumber);
			} else {
				_datasDatagrid.datagrid('beginEdit', rowIndex);
				editRowsNumber = rowIndex;
				_datasDatagrid.datagrid('unselectAll');
			}
		},
		onRowContextMenu : function(e, rowIndex, rowData){/*Datagrid右键事件*/
			e.preventDefault();	/*阻止浏览器右键菜单*/
			_datasDatagrid.datagrid('unselectAll').datagrid('selectRow', rowIndex);
			$('#datagridContextMenu').menu('show', {left:e.pageX,top:e.pageY /*取当前鼠标X和Y坐标*/});
		},
		onAfterEdit : function(rowIndex, rowData, changes) { /*结束编辑时调用的事件*/
			//console.info(rowData); 	/*rowData表示最后编辑的那些行数据*/
			//console.info(changes); 	/*changes表示更改的数据列，是一个数组*/
			var inserted = _datasDatagrid.datagrid('getChanges', 'inserted');
			//console.info(inserted);	/*inserted表示增加的那些行数据*/
			var updated = _datasDatagrid.datagrid('getChanges', 'updated');
			//console.info(updated);	/*updated表示编辑的那些行数据*/
			if (inserted.length < 1 && updated.length < 1) {
				editRowsNumber = -1;
				_datasDatagrid.datagrid('unselectAll');
				return;
			}
			var url='';
			if (inserted.length > 0) {
				url=sy.bp()+'/admin/group/add';
			}
			if (updated.length > 0) {
				url=sy.bp()+'/admin/group/update';
			}
			$.post(url, rowData, function(data) {
				if (data && data.result==1) {
					_datasDatagrid.datagrid('acceptChanges');
					$.messager.show({msg:data.msg,title:'系统提示'});
					_datasDatagrid.datagrid('reload');
				} else {
					_datasDatagrid.datagrid('rejectChanges');
					$.messager.alert('错误', data.msg, 'warning');
				}
				editRowsNumber = -1;
				_datasDatagrid.datagrid('unselectAll');
			}, "json");
		}
	});
	
});